#ifndef WIN32_BASIC_UI_H_INCLUDED
#define WIN32_BASIC_UI_H_INCLUDED

#include "basic_ui.h"

// Make sure structures are packed the same way as Windows packs them
#pragma pack(push, 2)

typedef struct    // This is the Directory Entry stored in resources
{
   BYTE Width;
   BYTE Height;
   BYTE Colors;
   BYTE Reserved;
   WORD Planes;
   WORD BitsPerPixel;
   DWORD ImageSize;
   WORD ResourceID;
} IconDirResEntry, *PIconDirResEntry;

typedef struct    // This is the actual RT_GROUP_ICON structure
{
   WORD Reserved;
   WORD ResourceType;
   WORD ImageCount;
   PIconDirResEntry Enries;    // The number of entries is ImageCount
} GroupIcon;

typedef struct {
  WORD Reserved1;       // reserved, must be 0
  WORD ResourceType;    // type is 1 for icons
  WORD ImageCount;      // number of icons in structure (1)
  BYTE Width;           // icon width (32)
  BYTE Height;          // icon height (32)
  BYTE Colors;          // colors (0 means more than 8 bits per pixel)
  BYTE Reserved2;       // reserved, must be 0
  WORD Planes;          // color planes
  WORD BitsPerPixel;    // bit depth
  DWORD ImageSize;      // size of structure
  WORD ResourceID;      // resource ID
} GROUPICON;

// Restore default packing
#pragma pack(pop)

#endif // WIN32_BASIC_UI_H_INCLUDED
